package com.sg.dto.integration.app;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;


/**
 * @desc AddCycleTimeRuleReqDto
 * @使用场景
 */
@Data
public class AddCycleTimeRuleReqDto extends BaseDto implements Serializable {

    /**
     * 时段规则名称
     */
    @NotNull(message = "时段规则名称不能为空")
    @ApiModelProperty("时段规则名称")
    private String timeRuleName;

    /**
     * 时段规则标识
     */
    @NotNull(message = "时段规则标识不能为空")
    @ApiModelProperty("时段规则标识")
    private String timeRuleCode;

    /**
     * 时段规则类型 FILLEOUT:填报 EVALUATE:评价
     */
    @NotNull(message = "时段规则类型不能为空")
    @ApiModelProperty("时段规则类型")
    private String periodRuleType;

    /**
     * 参照哪一天 FIRST_DAT_CYCLE:周期第一天 LAST_DAY_CYCLE:周期最后一天
     */
    @NotNull(message = "参照哪一天不能为空")
    @ApiModelProperty("参照哪一天")
    private String startStopType;

    /**
     * 是否包含参照这一天 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否包含参照这一天不能为空")
    @ApiModelProperty("是否包含参照这一天")
    private String isContains;

    /**
     * 时间单位 DAY:天 HOUR:小时 MINUTES:分钟
     */
    @NotNull(message = "时间单位不能为空")
    @ApiModelProperty("时间单位")
    private String timeUnit;

    /**
     * 计算类型 FORWARD:向前 BACKWARD:向后
     */
    @NotNull(message = "计算类型不能为空")
    @ApiModelProperty("计算类型")
    private String calculateType;

    /**
     * 相对周期提前或延后数量
     */
    @NotNull(message = "相对周期提前或延后数量 不能为空")
    @ApiModelProperty("相对周期提前或延后数量 ")
    private Long timeRelativeNumber;

    /**
     * 时段区间数量
     */
    @NotNull(message = "时段区间数量不能为空")
    @ApiModelProperty("时段区间数量")
    private Long timeNumber;

    /**
     * 跟随时段区间数量
     */
    @ApiModelProperty("跟随时段区间数量")
    private Long followTimeNumber;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;


}
   